package cool.mtc.base.plugin.generator.code.model.template;

import cool.mtc.core.util.StringUtil;

/**
 * @author 明河
 */
public interface TemplateParamSupport {

    /**
     * 项目路径
     */
    String getProjectPath();

    /**
     * 模板相对路径
     */
    String getTemplateRelativePath();

    /**
     * 生成的文件路径
     */
    String getTargetFilePath();

    default void handleCheckParamsCorrect() {
        if (StringUtil.isEmpty(this.getProjectPath())) {
            throw new RuntimeException(this.handleMessage("未设置[projectPath]"));
        }
    }

    default String handleMessage(String message) {
        return String.format("%s（%s）", message, this.getClass().getName());
    }

    default String fixPath(String path) {
        return path.endsWith(StringUtil.SLASH) ? path : (path + StringUtil.SLASH);
    }
}
